// Prism.js Mermaid语言定义插件
(function (Prism) {
  // Mermaid语言定义
  Prism.languages.mermaid = {
    // 图表类型关键字 - 红色显示
    'chart-type': {
      pattern: /\b(flowchart|graph|sequenceDiagram|gantt|classDiagram|stateDiagram|erDiagram|pie|gitGraph|journey|C4Context|C4Container|C4Component|C4Deployment|mindmap|timeline|quadrantChart|requirementDiagram)\b/i,
      alias: 'keyword'
    },
    
    // 方向关键字 - 蓝色显示
    'direction': {
      pattern: /\b(TD|LR|RL|BT|TB)\b/,
      alias: 'property'
    },
    
    // 子图关键字 - 蓝色显示
    'subgraph': {
      pattern: /\b(subgraph|end)\b/,
      alias: 'function'
    },
    
    // 注释 - 灰色显示
    'comment': {
      pattern: /%%.*$/m,
      alias: 'comment'
    },
    
    // 字符串 - 绿色显示
    'string': {
      pattern: /(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
      greedy: true,
      alias: 'string'
    },
    
    // HTML标签 - 绿色显示
    'tag': {
      pattern: /<[^>]*>/,
      alias: 'tag'
    },
    
    // 样式定义关键字 - 紫色显示
    'style': {
      pattern: /\b(classDef|style|linkStyle)\b/,
      alias: 'selector'
    },
    
    // 颜色值 - 蓝色显示
    'color': {
      pattern: /#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})\b|\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|purple|red|silver|teal|white|yellow)\b/,
      alias: 'number'
    },
    
    // 数字 - 蓝色显示
    'number': {
      pattern: /\b\d+(?:\.\d+)?\b/,
      alias: 'number'
    },
    
    // 操作符 - 红色显示
    'operator': {
      pattern: /[=\->:\|\&]+/,
      alias: 'operator'
    }
  };
  
  // 注册语言
  Prism.languages.mermaid = Prism.languages.mermaid;
}(Prism));